package cn.iocoder.yudao.module.pplan.controller.admin.quarterproducerecord.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.time.LocalTime;

@Schema(description = "管理后台 - 生产计划-生产季度计划记录新增/修改 Request VO")
@Data
public class QuarterProduceRecordSaveReqVO {

    @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "10374")
    private Long id;

    @Schema(description = "计划编号", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "计划编号不能为空")
    private String pplanCode;

    @Schema(description = "航班号", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "航班号不能为空")
    private String flightNo;

    @Schema(description = "班期(如:1234567)")
    private String schPat;

    @Schema(description = "起飞地点")
    private String depLoc;

    @Schema(description = "起飞站点三字代码")
    private String depIata;

    @Schema(description = "起飞时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "起飞时间不能为空")
    private LocalTime depTime;

    @Schema(description = "降落地点")
    private String arrLoc;

    @Schema(description = "降落站点三字代码")
    private String arrIata;

    @Schema(description = "降落时间")
    private LocalTime arrTime;

    @Schema(description = "航班性质", example = "2")
    private String flightType;

    @Schema(description = "商务舱餐谱")
    private String bussClassMeal;

    @Schema(description = "商务舱特殊餐餐谱")
    private String bussClassSpcMeal;

    @Schema(description = "高级经济舱餐谱")
    private String premEcoClassMeal;

    @Schema(description = "高级经济舱特殊餐餐谱")
    private String premEcoClassSpcMeal;

    @Schema(description = "经济舱餐谱")
    private String ecoClassMeal;

    @Schema(description = "经济舱机组餐谱")
    private String ecoClassSpcMeal;

    @Schema(description = "机组餐谱")
    private String crewMeal;

    @Schema(description = "所属公司")
    private String airlineComp;

    @Schema(description = "所属公司三字代码")
    private String airlineIata;

    @Schema(description = "航线类别", example = "2")
    private String airlineType;

    @Schema(description = "商务舱人数量")
    private Integer bussClassQty;

    @Schema(description = "高级经济舱人数量")
    private Integer premEcoClassQty;

    @Schema(description = "经济舱人数量")
    private Integer ecoClassQty;

    @Schema(description = "机组人数量")
    private Integer crewQty;

    @Schema(description = "商务舱特殊人数量")
    private Integer bussClassSpcQty;

    @Schema(description = "高级经济舱特殊人数量")
    private Integer premEcoClassSpcQty;

    @Schema(description = "经济舱特殊人数量")
    private Integer ecoClassSpcQty;

    @Schema(description = "机组特殊人数量")
    private Integer crewSpcQty;

    @Schema(description = "商务舱餐数量")
    private Integer bussClassMealQty;

    @Schema(description = "高级经济舱餐数量")
    private Integer premEcoClassMealQty;

    @Schema(description = "经济舱餐数量")
    private Integer ecoClassMealQty;

    @Schema(description = "机组餐数量")
    private Integer crewMealQty;

    @Schema(description = "商务舱特殊餐数量")
    private Integer bussClassSpcMealQty;

    @Schema(description = "高级经济舱特殊餐数量")
    private Integer premEcoClassSpcMealQty;

    @Schema(description = "经济舱特殊餐数量")
    private Integer ecoClassSpcMealQty;

    @Schema(description = "机组特殊餐数量")
    private Integer crewSpcMealQty;

    @Schema(description = "餐车数量")
    private Integer dinerCars;

    @Schema(description = "烤炉数量")
    private Integer ovens;

    @Schema(description = "备注")
    private String remarks;

    @Schema(description = "特殊说明")
    private String specialRemarks;

    @Schema(description = "标记状态:1未标记;", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @NotNull(message = "标记状态:1未标记;不能为空")
    private Integer markStatus;

    @Schema(description = "生产状态，默认1未开始2进行中3已结束", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    @NotNull(message = "生产状态，默认1未开始2进行中3已结束不能为空")
    private Integer status;

}